var data = [{
    'province': '浙江',
    'city': '温州',
    'code': '10010'
}, {
    'province': '浙江',
    'city': '杭州',
    'code': '10011'
}, {
    'province': '安徽',
    'city': '合肥',
    'code': '10012'
}, {
    'province': '安徽',
    'city': '马鞍山',
    'code': '10013'
}, {
    'province': '浙江',
    'city': '宁波',
    'code': '10014'
}];

function getTree(data) {
  const hash = { }
  const newData = []
  for (let i = 0; i < data.length; ++i) {
    let item = data[i]
    if (!hash[item.province]) {
      hash[item.province] = {
        'province': item.province
      }
      hash[item.province]['city'] = [{
        'name': item.city,
        'code': item.code
      }]
      newData.push(hash[item.province])
    } else {
      hash[item.province]['city'].push({
        'name': item.city,
        'code': item.code
      })
    }
  }
  return newData
}

console.table(getTree(data))
